#ifndef _MAZEPRINTER_H
#define _MAZEPRINTER_H

#include <iostream>
#include <vector>
#include "Point.h"
#include "Edge.h"
#include "Maze.h"

class Mazeprinter {
    public:
        Mazeprinter (Maze* input, bool printPoisson);   //Constructor
        virtual ~Mazeprinter();                         //Destructor
        void printpointers();               //prints ALL the points in the maze in a sorted order first by X then if X is same then by Y (X Y STATUS)
        void printedges();                  //prints ALL the edges by the index of pointlist  (POINT1_INDEX POINT2_INDEX STATUS)
        void printrooms();                  //prints ALL the triangles in the trilist   (#_OF_EDGES_IN_THE_TRIANGLE EDGE1_INDEX EDGE2_INDEX EDGE3_INDEX)
        void print();                       //prints dimensions, # of pointers, # of edges, # of triangles, point, edge, triangle in the corresponding order
    private:
    //initializing variable
        Maze* maze;
        vector<Point*> p;
        vector<Edge*> e;
        vector<Triangle*> t;
};

#endif
